<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*
            1.通过new去声明正则表达式
                第一个参数 正则表达式的主体  字符串
                第二个参数 修饰符  i g修饰符没有顺序 m换行匹配
            2.省略new
            3.常量声明

            方法:
                test: 正则.test(字符串)
                    在字符串中匹配这个正则是否存在 返回true/false
                exec: 正则.exec(字符串)
                    在字符串中匹配这个正则是否存在 返回 成功：字符串数组  失败：null

            字符串的函数：
                match()  字符串.match(正则) 在字符串匹配是否有符合的正则表达式 返回 成功：字符串数组  失败：null
                replace() 字符串.replace(正则/oldStr,newStr); 用newStr将oldStr替换 返回替换成功的新字符串
                split() 字符串.split(分割符/正则),用分隔符将原字符串进行分割 返回由子串组成的数组
                search() 字符串.search(子串/正则)，找到符合条件的子串第一次出现的位置 找到：返回下标 找不到：返回-1

            元字符
                .               匹配单个的任意字符
                []              匹配单个范围内的字符
                [0-9]           匹配单个0-9之间任意的数字
                [a-zA-Z0-9_]    匹配单个的数字、字母、下划线
                [^]             匹配任意一个除括号范围内的字符
                \w              等价于[a-zA-Z0-9_]
                \W              匹配除[a-zA-Z0-9_]以外的
                \d              等价于[0-9]
                \D              匹配除[0-9]以外的 等价于[^0-9]

                重复字符  x表示任意的单个字符
                    x?          匹配0个或1个x
                    x+          匹配至少一个x
                    x*          匹配任意个x字符(0个或多个)
                    x{m,n}      匹配至少m个，最多n个字符，包括n
                    x{n}        必须匹配n个x字符
                    (xyz)+      小括号括起来的部分相对于一个字符
                
                空白字符
                    \s          匹配任意单个的空白字符
                    \S          匹配任意单个的非空白字符

                锚字符
                    ^           行首匹配(以这个正则开头)
                    $           行尾匹配(以这个正则结尾)

                替代字符
                    |           相对于或 ，只要一个匹配到，就匹配成功
                
                转义字符
                    \.          代表本来.字符的意思
                    \*          代表本来*字符的意思

                () 代表分组的意思  如果再其后面出现\1则是代表与第一个小括号中要匹配的内容相同。
        */
       //var box1 = new RegExp("hello","ig");
       //var box1 = RegExp("hello","ig");
       var str = "how aRe you";
       alert(str.replace(/aRe/ig,"x"))
       var box1 = /are/g;
       alert(box1.exec(str));
       alert(str.match(box1));
    </script>
</head>
<body>
    
</body>
</html>